# Big Book of Julia

## Welcome

Welcome to the Big Book of Julia!

Created and maintained by Adam Wysokiński.

The idea for Big Book of Julia is based on [Big Book of R](https://www.bigbookofr.com/index.html).

## Contributing

Please feel free to contribute documentation, tutorials, paid and free books.

## Contributors

If you've contributed, add your name below!

Adam Wysokiński

## Licence

This website/book is free to use, and is licensed under the [Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License](https://creativecommons.org/licenses/by-nc-nd/3.0/us/).

## About me

My name is Adam, I'm a psychiatrist and neuroscientist. Using Julia I study EEG and neuromodulatory techniques in schizophrenia. I enjoy dub techno (Basic Channel) and ambient (Biosphere), movies (Twin Peaks), vege ramen and wakame, Aikido (2. Kyū), sci-fi and cyberpunk (Stanisław Lem, Philip K. Dick, William Gibson, Neal Stephenson), coffee, winter trekking and free software.

## Language documentation

[Julia Documentation](https://docs.julialang.org/en/v1/)

This is the official Julia documentation.

## Julia YouTube channel

[The Julia Programming Language](https://www.youtube.com/c/TheJuliaLanguage/videos)

## Julia Academy Courses

[JuliaAcademy](https://juliaacademy.com/courses)

## Blogs

[Julia Computing](https://juliacomputing.com/blog/)

## Packages documentation

[Pkg.jl](https://pkgdocs.julialang.org/v1/)

Documentation for Pkg, Julia's package manager.

### Data analysis

[CSV.jl](https://csv.juliadata.org/stable/)

CSV.jl is a pure-Julia package for handling delimited text data, be it comma-delimited (csv), tab-delimited (tsv), or otherwise.

[DataFrames.jl](https://dataframes.juliadata.org/stable/)

DataFrames.jl provides a set of tools for working with tabular data in Julia.

[Tables.jl](https://tables.juliadata.org/stable/)

This guide provides documentation around the powerful tables interfaces in the Tables.jl package.

[Query.jl](https://www.queryverse.org/Query.jl/stable/)

Query is a package for querying Julia data sources. It can filter, project, join, sort and group data from any iterable data source.

[DataFramesMeta.jl](https://juliadata.github.io/DataFramesMeta.jl/stable/)

Metaprogramming tools for DataFrames.jl objects to provide more convenient syntax.

[Impute.jl](https://invenia.github.io/Impute.jl/latest/)

Impute.jl provides various methods for handling missing data in Vectors, Matrices and Tables.

[LazyGrids.jl](https://juliaarrays.github.io/LazyGrids.jl/stable/)

This Julia module exports a method ndgrid for generating lazy versions of grids from a collection of 1D vectors (any AbstractVector type).

[Interpolations.jl](https://juliamath.github.io/Interpolations.jl/latest/)

This package implements a variety of interpolation schemes for the Julia language. It has the goals of ease-of-use, broad algorithmic support, and exceptional performance.

[ScatteredInterpolation.jl](https://eljungsk.github.io/ScatteredInterpolation.jl/stable/)

Interpolation of scattered data in Julia.

[GridInterpolations.jl](https://github.com/sisl/GridInterpolations.jl/blob/master/README.md)

This package performs multivariate interpolation on a rectilinear grid. At the moment, it provides implementations of multilinear and simplex interpolation.

### Plots

[Makie.jl](https://makie.juliaplots.org/stable/documentation/)

[Plots.jl](https://docs.juliaplots.org/latest/)

[Winston.jl](https://winston.readthedocs.io/en/latest/#)

[ColorSchemes.jl](https://juliagraphics.github.io/ColorSchemes.jl/stable/)

[Gaston.jl](https://mbaz.github.io/Gaston.jl/stable/)

Gaston (source code here) is a Julia package for plotting. It provides an interface to gnuplot, a mature, powerful, and actively developed plotting package available on all major platforms.

### Math

[Quadmath.jl](https://github.com/JuliaMath/Quadmath.jl)

Use Float128s (this wraps GNU libquadmath)  

[SpecialMatrices.jl](https://github.com/JuliaMatrices/SpecialMatrices.jl)

[ToeplitzMatrices.jl](https://github.com/JuliaMatrices/ToeplitzMatrices.jl/blob/master/README.md)

[SpecialMatrices.jl](https://github.com/JuliaMatrices/SpecialMatrices.jl/blob/master/README.md)

[Nemo.jl](https://nemocas.github.io/Nemo.jl/latest/)

Nemo is a computer algebra package for the Julia programming language.

### AI

[MLJ.jl](https://alan-turing-institute.github.io/MLJ.jl/dev/)

[PackageCompiler.jl](https://julialang.github.io/PackageCompiler.jl/dev/index.html)

[ScientificTypes.jl](https://juliaai.github.io/ScientificTypes.jl/stable/)

[Flux.jl](https://fluxml.ai/Flux.jl/stable/)

[Knet.jl](https://denizyuret.github.io/Knet.jl/stable/)

[FastAI.jl](https://fluxml.ai/FastAI.jl/dev/README.md.html)

### Signal analysis

[FFTW.jl](https://juliamath.github.io/FFTW.jl/stable/fft/)

[DSP.jl](https://docs.juliadsp.org/stable/contents/)

[Deconvolution.jl](https://juliadsp.org/Deconvolution.jl/dev/)

[Wavelets.jl](https://github.com/JuliaDSP/Wavelets.jl/blob/master/README.md)

[ContinuousWavelets.jl](https://github.com/UCD4IDS/ContinuousWavelets.jl/blob/master/README.md)

[WaveletsExt.jl](https://ucd4ids.github.io/WaveletsExt.jl/stable/)

[EDFPlus.jl](https://github.com/wherrera10/EDFPlus.jl)

Julia for handling BDF+ and EDF+ EEG and similar signal data files.

### Statistics

[StatsKit.jl](https://github.com/JuliaStats/StatsKit.jl/blob/master/README.md)

This is a convenience meta-package which allows loading essential packages for statistics.

[Bootstrap.jl](https://github.com/juliangehring/Bootstrap.jl/blob/master/README.md)

[CategoricalArrays.jl](https://categoricalarrays.juliadata.org/stable/)

[Clustering.jl](https://juliastats.org/Clustering.jl/stable/)

[Distances.jl](https://github.com/JuliaStats/Distances.jl/blob/master/README.md)

[HypothesisTests.jl](https://juliastats.org/HypothesisTests.jl/stable/)

[KernelDensity.jl](https://github.com/JuliaStats/KernelDensity.jl/blob/master/README.md)

[Loess.jl](https://github.com/JuliaStats/Loess.jl/blob/master/README.md)

[MultivariateStats.jl](https://juliastats.org/MultivariateStats.jl/dev/)

A Julia package for multivariate statistics and data analysis (e.g. dimensionality reduction).

[MixedModels.jl](https://juliastats.org/MixedModels.jl/stable/)

[StatsBase.jl](https://juliastats.org/StatsBase.jl/stable/)

StatsBase.jl is a Julia package that provides basic support for statistics. Particularly, it implements a variety of statistics-related functions, such as scalar statistics, high-order moment computation, counting, ranking, covariances, sampling, and empirical density estimation.

[StatsModels.jl](https://juliastats.org/StatsModels.jl/stable/)

[StatsFuns.jl](https://github.com/JuliaStats/StatsFuns.jl/blob/master/README.md)

Mathematical functions related to statistics.

[GLM.jl](https://juliastats.org/GLM.jl/stable/)

[Distributions.jl](https://juliastats.org/Distributions.jl/latest/)

[TimeSeries.jl](https://juliastats.org/TimeSeries.jl/dev/)

[MultivariateStats.jl](https://multivariatestatsjl.readthedocs.io/en/stable/index.html#)

### Image processing

[JuliaImages.jl](https://juliaimages.org/stable/)

JuliaImages: image processing and machine vision for Julia

[HistogramThresholding.jl](https://juliaimages.org/HistogramThresholding.jl/stable/)

A Julia package for analyzing a one-dimensional histogram and automatically choosing a threshold which partitions the histogram into two parts.

### Interoperability

[PyCall.jl](https://github.com/JuliaPy/PyCall.jl/blob/master/README.md)

Calling Python functions from the Julia language.

[SciPy.jl](https://atsushisakai.github.io/SciPy.jl/stable/)

A Julia interface for SciPy using PyCall.jl.

[RCall.jl](https://juliainterop.github.io/RCall.jl/stable/)

Allows the user to call R packages from within Julia.

[MATLAB.jl](https://github.com/JuliaInterop/MATLAB.jl/blob/master/README.md)

The MATLAB.jl package provides an interface for using MATLAB® from Julia using the MATLAB C api.

### Misc packages

[Revise.jl](https://timholy.github.io/Revise.jl/stable/)

Revise.jl may help you keep your Julia sessions running longer, reducing the need to restart when you make changes to code.

## Books

### JuliaProgramming

Nagar S. [Beginning Julia Programming](http://link.springer.com/10.1007/978-1-4842-3171-5) DOI: 10.1007/978-1-4842-3171-5

Kerns G. [Introduction to Julia](https://github.com/gjkerns/ob-julia/blob/master/pdf/intro-julia.pdf)

Kalicharan N. [Julia - Bit by Bit: Programming for Beginners](https://link.springer.com/10.1007/978-3-030-73936-2) DOI: 10.1007/978-3-030-73936-2

Sherrington M. [Mastering Julia](https://www.packtpub.com/product/mastering-julia/9781783553310) ISBN: 9781783553310

Sengupta A, Sherrington M, Balbaert I. [Julia: High Performance Programming](https://www.packtpub.com/product/julia-high-performance-programming/9781787125704) ISBN: 9781787125704

Balbaert I. [Getting Started with Julia](https://www.packtpub.com/product/getting-started-with-julia/9781783284795) ISBN: 9781783284795

Sengupta A. [Julia High Performance](https://www.packtpub.com/product/julia-high-performance/9781785880919) ISBN: 9781785880919

Joshi A, Lakhanpal R. [Learning Julia](https://www.packtpub.com/product/learning-julia/9781785883279) ISBN: 9781785883279

Orban D, Arioli M. [Iterative Solution of Symmetric Quasi-Definite Linear Systems](https://epubs.siam.org/doi/book/10.1137/1.9781611974737) DOI: 10.1137/1.9781611974737

Rohit J. [Julia Cookbook](https://www.packtpub.com/product/julia-cookbook/9781785882012) ISBN: 9781785882012

### Data science

Storopoli J, Huijzer R, Alonso L. [Julia data science](https://juliadatascience.io/juliadatascience.pdf) ISBN: 9798489859165

Chan S. [Introduction to Probability for Data Science](https://probability4datascience.com/index.html) ISBN: 978-1-60785-747-1

Joshi A. [Julia for Data Science](https://www.packtpub.com/product/julia-for-data-science/9781785289699) ISBN: 9781785289699

Voulgaris Z. [Julia for Data Science](https://technicspub.com/sample-page/analytics-architecture/julia-for-data-science-print-pdf/)

### Statistics

### Artificial intelligence

### Signal analysis

### Image processing

Cudihins D. [Hands-On Computer Vision with Julia](https://www.packtpub.com/product/hands-on-computer-vision-with-julia/9781788998796) ISBN: 9781788998796

## Misc

[Quantitative Economics with Julia](https://julia.quantecon.org/intro.html)

This website presents a set of lectures on quantitative economic modeling, designed and written by Jesse Perla, Thomas J. Sargent and John Stachurski. The language instruction is Julia.

## Tutorials

[Julia language: a concise tutorial](https://syl1.gitbook.io/julia-language-a-concise-tutorial/)

[Exploratory PCA in Julia](https://stackoverflow.com/questions/68053860/exploratory-pca-in-julia)

[Julia macros for beginners](https://jkrumbiegel.com/pages/2021-06-07-macros-for-beginners/)

[A really brief introduction to audio signal processing in Julia](https://www.seaandsailor.com/audiosp_julia.html)

[Julia: delete rows and columns from an array or matrix](https://stackoverflow.com/questions/58033504/julia-delete-rows-and-columns-from-an-array-or-matix)